
<!doctype html>
<html lang="zh" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      
      
      
      
        <link rel="prev" href="../git%E5%BE%BD%E6%A0%87/">
      
      
        <link rel="next" href="../%E4%BC%98%E9%9B%85%E7%9A%84%E6%B7%BB%E5%8A%A0.gitignore/">
      
      
      <link rel="icon" href="../../assets/images/favicon.png">
      <meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.12">
    
    
      
        <title>GIT版本管理看这一篇就够了 - 简书 - CodeLabs(博客临时站点)</title>
      
    
    
      <link rel="stylesheet" href="../../assets/stylesheets/main.7e359304.min.css">
      
        
        <link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
      
      


    
    
      
    
    
      
        
        
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
        <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
      
    
    
    <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
    
      

    
    
    
  </head>
  
  
    
    
      
    
    
    
    
    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
  
    
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#git-" class="md-skip">
          跳转至
        </a>
      
    </div>
    <div data-md-component="announce">
      
    </div>
    
    
      

  

<header class="md-header md-header--shadow" data-md-component="header">
  <nav class="md-header__inner md-grid" aria-label="页眉">
    <a href="../.." title="CodeLabs(博客临时站点)" class="md-header__button md-logo" aria-label="CodeLabs(博客临时站点)" data-md-component="logo">
      
  <img src="../../OTHERS/dancehole.png" alt="logo">

    </a>
    <label class="md-header__button md-icon" for="__drawer">
      
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
    </label>
    <div class="md-header__title" data-md-component="header-title">
      <div class="md-header__ellipsis">
        <div class="md-header__topic">
          <span class="md-ellipsis">
            CodeLabs(博客临时站点)
          </span>
        </div>
        <div class="md-header__topic" data-md-component="header-topic">
          <span class="md-ellipsis">
            
              GIT版本管理看这一篇就够了 - 简书
            
          </span>
        </div>
      </div>
    </div>
    
      
        <form class="md-header__option" data-md-component="palette">
  
    
    
    
    <input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="切换至夜间模式"  type="radio" name="__palette" id="__palette_0">
    
      <label class="md-header__button md-icon" title="切换至夜间模式" for="__palette_1" hidden>
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31Z"/></svg>
      </label>
    
  
    
    
    
    <input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="cyan"  aria-label="切换至日间模式"  type="radio" name="__palette" id="__palette_1">
    
      <label class="md-header__button md-icon" title="切换至日间模式" for="__palette_0" hidden>
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29L3.34 7m.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14L3.36 17M20.65 7l-1.77 3.79a7.023 7.023 0 0 0-2.38-4.15l4.15.36m-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29L20.64 17M12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44L12 22Z"/></svg>
      </label>
    
  
</form>
      
    
    
      <script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
    
    
    
    
      <div class="md-header__source">
        <a href="https://gitee.com/dancehole/code-labs" title="前往仓库" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    dancehole/CodeLabs
  </div>
</a>
      </div>
    
  </nav>
  
</header>
    
    <div class="md-container" data-md-component="container">
      
      
        
          
        
      
      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">
          
            
              
              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    



<nav class="md-nav md-nav--primary" aria-label="导航栏" data-md-level="0">
  <label class="md-nav__title" for="__drawer">
    <a href="../.." title="CodeLabs(博客临时站点)" class="md-nav__button md-logo" aria-label="CodeLabs(博客临时站点)" data-md-component="logo">
      
  <img src="../../OTHERS/dancehole.png" alt="logo">

    </a>
    CodeLabs(博客临时站点)
  </label>
  
    <div class="md-nav__source">
      <a href="https://gitee.com/dancehole/code-labs" title="前往仓库" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    dancehole/CodeLabs
  </div>
</a>
    </div>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
  
  
  
  
    <li class="md-nav__item">
      <a href="../.." class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Home
  </span>
  

      </a>
    </li>
  

    
      
      
  
  
  
  
    <li class="md-nav__item">
      <a href="../../README_en/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    README en
  </span>
  

      </a>
    </li>
  

    
      
      
  
  
    
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
        
          
          <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    Git
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
          <label class="md-nav__title" for="__nav_3">
            <span class="md-nav__icon md-icon"></span>
            Git
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../github%2BpicGo%E5%9B%BE%E5%BA%8A/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    github+picGo图床
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../git%E5%BE%BD%E6%A0%87/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    GitHub项目徽标 - 知乎
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
    
  
  
  
    <li class="md-nav__item md-nav__item--active">
      
      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
      
      
        
      
      
        <label class="md-nav__link md-nav__link--active" for="__toc">
          
  
  <span class="md-ellipsis">
    GIT版本管理看这一篇就够了 - 简书
  </span>
  

          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <a href="./" class="md-nav__link md-nav__link--active">
        
  
  <span class="md-ellipsis">
    GIT版本管理看这一篇就够了 - 简书
  </span>
  

      </a>
      
        

<nav class="md-nav md-nav--secondary" aria-label="目录">
  
  
  
    
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      目录
    </label>
    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#_1" class="md-nav__link">
    <span class="md-ellipsis">
      一、简介
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#git" class="md-nav__link">
    <span class="md-ellipsis">
      二、GIT安装配置
    </span>
  </a>
  
    <nav class="md-nav" aria-label="二、GIT安装配置">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#11" class="md-nav__link">
    <span class="md-ellipsis">
      1.1.中文乱码
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#12" class="md-nav__link">
    <span class="md-ellipsis">
      1.2.配置身份信息
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#_2" class="md-nav__link">
    <span class="md-ellipsis">
      三、创建仓库
    </span>
  </a>
  
    <nav class="md-nav" aria-label="三、创建仓库">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#init" class="md-nav__link">
    <span class="md-ellipsis">
      【init】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#clone" class="md-nav__link">
    <span class="md-ellipsis">
      【clone】
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#git_1" class="md-nav__link">
    <span class="md-ellipsis">
      四、基础GIT命令
    </span>
  </a>
  
    <nav class="md-nav" aria-label="四、基础GIT命令">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#status" class="md-nav__link">
    <span class="md-ellipsis">
      【status】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#add" class="md-nav__link">
    <span class="md-ellipsis">
      【add】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#commit" class="md-nav__link">
    <span class="md-ellipsis">
      【commit】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#rm" class="md-nav__link">
    <span class="md-ellipsis">
      【rm】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#reset" class="md-nav__link">
    <span class="md-ellipsis">
      【reset】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#diff" class="md-nav__link">
    <span class="md-ellipsis">
      【diff】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#log" class="md-nav__link">
    <span class="md-ellipsis">
      【log】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#tag" class="md-nav__link">
    <span class="md-ellipsis">
      【tag】
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#_3" class="md-nav__link">
    <span class="md-ellipsis">
      五、分支管理
    </span>
  </a>
  
    <nav class="md-nav" aria-label="五、分支管理">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#branch" class="md-nav__link">
    <span class="md-ellipsis">
      【branch】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#checkout" class="md-nav__link">
    <span class="md-ellipsis">
      【checkout】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#merge" class="md-nav__link">
    <span class="md-ellipsis">
      【merge】
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#_4" class="md-nav__link">
    <span class="md-ellipsis">
      六、远程仓库
    </span>
  </a>
  
    <nav class="md-nav" aria-label="六、远程仓库">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#remote" class="md-nav__link">
    <span class="md-ellipsis">
      【remote】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#fetch" class="md-nav__link">
    <span class="md-ellipsis">
      【fetch】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#pull" class="md-nav__link">
    <span class="md-ellipsis">
      【pull】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#push" class="md-nav__link">
    <span class="md-ellipsis">
      【push】
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#_5" class="md-nav__link">
    <span class="md-ellipsis">
      七、配置忽略文件
    </span>
  </a>
  
</li>
      
    </ul>
  
</nav>
      
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../%E4%BC%98%E9%9B%85%E7%9A%84%E6%B7%BB%E5%8A%A0.gitignore/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    VS Gitignore 示例：
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../%E5%85%B3%E4%BA%8Egit%E9%80%89license/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    如何快速选择开源许可证License，看这三个就够了_copyright-CSDN博客
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E7%9A%84%E7%BB%99%E8%87%AA%E5%B7%B1%E7%9A%84%E4%BB%A3%E7%A0%81%E4%B8%8A%E4%BA%91/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    如何优雅的给自己的代码上云
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E7%9A%84%E8%BF%9B%E8%A1%8C%E8%BF%9C%E7%A8%8B%E5%8D%8F%E4%BD%9C/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    如何优雅的进行远程协作
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../%E8%B4%A1%E7%8C%AE%E6%96%87%E6%A1%A3/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    贡献文档
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
        
          
          <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    Linux UsefulCommands
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_4">
            <span class="md-nav__icon md-icon"></span>
            Linux UsefulCommands
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../Linux-UsefulCommands/%E7%A8%8B%E5%BA%8F%E6%94%BE%E5%85%A5%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    程序放入后台运行
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
        
          
          <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    Markdown
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_5">
            <span class="md-nav__icon md-icon"></span>
            Markdown
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../Markdown/Blog%E6%95%99%E7%A8%8B/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    基于Mkdocs+mkdocs-material+gitcus+gitee/github page+..的个人博客页
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../Markdown/%5B51cto%5DMarkdown%E7%94%A8%E6%B3%95/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    [51cto]Markdown用法
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../Markdown/%5Bcsdn%5Dmarkdown%E6%9C%80%E5%85%A8%E8%AF%AD%E6%B3%95/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    [csdn]markdown最全语法
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../Markdown/%5Bhtml%E6%89%A9%E5%B1%95%5Dmarkdown%E6%89%A9%E5%B1%95%E8%AF%AD%E6%B3%95/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    [html扩展]markdown扩展语法
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../Markdown/%5B%E6%B5%81%E7%A8%8B%E5%9B%BE%5D%E5%BC%80%E6%BA%90%E4%B8%89%E4%BB%B6%E5%A5%97-markdown%E6%89%A9%E5%B1%95/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    [流程图]开源三件套 markdown扩展
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../Markdown/%E5%BC%80%E6%BA%90%E4%B8%89%E4%BB%B6%E5%A5%97%E4%B9%8B%E4%B8%80-Markdown/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    开源三件套之一 Markdown
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../Markdown/%E7%BB%BC%E5%90%88%E5%BA%94%E7%94%A8%E5%AE%9E%E4%BE%8B/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    应用实例：好看的主页
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_8" >
        
          
          <label class="md-nav__link" for="__nav_5_8" id="__nav_5_8_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    README模板
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_8_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_5_8">
            <span class="md-nav__icon md-icon"></span>
            README模板
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../Markdown/README%E6%A8%A1%E6%9D%BF/readme_en/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Readme en
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../Markdown/README%E6%A8%A1%E6%9D%BF/readme_zh/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Readme zh
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
        
          
          <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    PublishedArticle
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_6">
            <span class="md-nav__icon md-icon"></span>
            PublishedArticle
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../PublishedArticle/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    已发布文章
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
        
          
          <label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    SoftWareUsage
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_7">
            <span class="md-nav__icon md-icon"></span>
            SoftWareUsage
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../SoftWareUsage/edge%E4%BD%BF%E7%94%A8/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Edge使用
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../SoftWareUsage/freefileSync%E6%96%87%E4%BB%B6%E5%90%8C%E6%AD%A5%E4%B8%8E%E5%A4%87%E4%BB%BD%E5%B7%A5%E5%85%B7/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    FreeFileSync文件同步与备份工具
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../SoftWareUsage/vs%20%E5%BF%AB%E6%8D%B7%E9%94%AE/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Vs 快捷键
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
        
          
          <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    UniversityStudy
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_8">
            <span class="md-nav__icon md-icon"></span>
            UniversityStudy
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../UniversityStudy/%E5%A4%A7%E5%AD%A6%E5%AD%A6%E4%B9%A0%E9%93%81%E5%BE%8B/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    大学学习（至少是大一到大四）永远要干的事情
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../UniversityStudy/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E7%9A%84%E8%AE%B2%E8%A7%A3%E7%9F%A5%E8%AF%86/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    如何优雅的讲解知识
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../UniversityStudy/%E6%AF%95%E4%B8%9A%E7%AD%94%E8%BE%A9/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    毕业答辩
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
        
          
          <label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    WindowsOS
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_9">
            <span class="md-nav__icon md-icon"></span>
            WindowsOS
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../WindowsOS/OS%E7%94%B5%E8%84%91%E6%B8%85%E7%90%86%E4%B8%8E%E7%B3%BB%E7%BB%9F%E9%87%8D%E8%A3%85/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    装机前的电脑备份工作
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../WindowsOS/Windows%E7%A3%81%E7%9B%98%E7%AE%A1%E7%90%86%EF%BC%9A%E5%88%A0%E9%99%A4%E5%88%86%E5%8C%BA/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Windows磁盘管理：删除不需要的分区（恢复分区等）
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../WindowsOS/Windows%E7%B3%BB%E7%BB%9F%E7%9B%98%E6%96%87%E4%BB%B6%E7%9B%AE%E5%BD%95%E4%BB%8B%E7%BB%8D/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Windows系统盘文件目录介绍
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../WindowsOS/%5BWindows%5D%E7%B3%BB%E7%BB%9F%E4%BF%9D%E6%8A%A4%EF%BC%9A%E5%8D%A0%E7%94%A8%E7%A3%81%E7%9B%98100G%E7%9A%84%E7%BD%AA%E9%AD%81%E7%A5%B8%E9%A6%96---CD%E7%9B%98%E6%97%A0%E6%95%85%E5%8D%A0%E7%94%A8%E5%86%85%E5%AD%98%28%E7%A1%AC%E7%9B%98%29%E7%A9%BA%E9%97%B4%E5%8E%9F%E5%9B%A0/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    系统保护:占用磁盘100G的罪魁祸首---C/D盘无故占用内存(硬盘)空间原因
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../WindowsOS/regedit/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Regedit
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../WindowsOS/windows%E5%AD%A6%E4%B9%A0%E4%B8%8E%E4%BD%BF%E7%94%A8/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Windows学习与使用
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../WindowsOS/windows%E5%BF%AB%E6%8D%B7%E9%94%AE/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Windows快捷键
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../WindowsOS/%E9%87%8D%E8%A3%85%E7%B3%BB%E7%BB%9F%20%26%20%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    重装系统 & 重装前的准备工作
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../WindowsOS/%E9%9A%90%E8%97%8F%E6%96%87%E4%BB%B6/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    隐藏文件
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9_10" >
        
          
          <label class="md-nav__link" for="__nav_9_10" id="__nav_9_10_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    清理备份日志
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_9_10_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_9_10">
            <span class="md-nav__icon md-icon"></span>
            清理备份日志
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../WindowsOS/%E6%B8%85%E7%90%86%E5%A4%87%E4%BB%BD%E6%97%A5%E5%BF%97/OS%E7%94%B5%E8%84%91%E6%B8%85%E7%90%86%E4%B8%8E%E7%B3%BB%E7%BB%9F%E9%87%8D%E8%A3%85/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    装机前的电脑备份工作
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../WindowsOS/%E6%B8%85%E7%90%86%E5%A4%87%E4%BB%BD%E6%97%A5%E5%BF%97/%E7%B3%BB%E7%BB%9F%E9%87%8D%E8%A3%85%E4%B8%8B%E8%BD%BD%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8F%8A%E7%9B%B8%E5%85%B3%E6%93%8D%E4%BD%9C/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    系统重装下载的软件及相关操作
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
        
          
          <label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    Utils 实用工具表
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_10">
            <span class="md-nav__icon md-icon"></span>
            Utils 实用工具表
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../utils_%E5%AE%9E%E7%94%A8%E5%B7%A5%E5%85%B7%E8%A1%A8/ASCII%E7%A0%81%E8%A1%A8/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    ASCII码表
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_11" >
        
          
          <label class="md-nav__link" for="__nav_11" id="__nav_11_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    常用外设、传感器
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_11_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_11">
            <span class="md-nav__icon md-icon"></span>
            常用外设、传感器
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/3%E8%89%B2RGB/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    跑马灯
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/DS18b20%E6%B8%A9%E6%B9%BF%E5%BA%A6/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    快速上手
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/%E4%B8%B2%E5%8F%A3%E7%9B%B8%E5%85%B3/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    串口相关
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/%E4%BF%A1%E5%8F%B7%E7%81%AF%E6%8E%A7%E5%88%B6%E7%B1%BB/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    合集内容:信号灯控制类
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/%E5%A4%A7%E5%B0%8F%E7%A3%81%E7%B0%A7_%E7%A3%81%E5%9C%BA%E4%BC%A0%E6%84%9F%E5%99%A8/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    大小磁簧 磁场传感器
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/%E5%BE%AA%E8%BF%B9%E6%A8%A1%E5%9D%97/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    循迹模块
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/%E6%8C%89%E9%94%AE%E5%BC%80%E5%85%B3/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    按键开关
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/%E6%95%B0%E5%AD%97%E6%B8%A9%E5%BA%A6%EF%BC%88%E6%B2%A1%E7%8E%A9%E6%98%8E%E7%99%BD%EF%BC%89/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    数字温度（没玩明白）
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/%E6%95%B2%E5%87%BB%E6%A8%A1%E5%9D%97/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    敲击模块
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/%E6%B8%B8%E6%88%8F%E6%91%87%E6%9D%86%E6%A8%A1%E5%9D%97/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    游戏摇杆模块
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/%E6%BF%80%E5%85%89%E5%8F%91%E5%B0%84%E5%99%A8/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    激光发射器
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/%E8%9C%82%E9%B8%A3%E5%99%A8%E7%B1%BB/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    蜂鸣器类
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E5%B8%B8%E7%94%A8%E5%A4%96%E8%AE%BE%E3%80%81%E4%BC%A0%E6%84%9F%E5%99%A8/%E8%A7%A6%E6%91%B8%E4%BC%A0%E6%84%9F%E5%99%A8/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    触摸传感器
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12" >
        
          
          <label class="md-nav__link" for="__nav_12" id="__nav_12_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    考研docs（tmp）
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_12">
            <span class="md-nav__icon md-icon"></span>
            考研docs（tmp）
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E8%80%83%E7%A0%94docs%EF%BC%88tmp%EF%BC%89/%E8%80%83%E7%A0%94%E4%B8%AD%E5%9C%BA%E7%9F%AD%E6%9C%9F%E8%A7%84%E5%88%92-%E6%97%B6%E9%97%B4%E8%A1%A8/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    时间表
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../%E8%80%83%E7%A0%94docs%EF%BC%88tmp%EF%BC%89/%E8%80%83%E7%A0%94%E4%B8%AD%E5%9C%BA%E7%9F%AD%E6%9C%9F%E8%A7%84%E5%88%92/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    考研知识扫盲及短期、长期规划
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              
              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    

<nav class="md-nav md-nav--secondary" aria-label="目录">
  
  
  
    
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      目录
    </label>
    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#_1" class="md-nav__link">
    <span class="md-ellipsis">
      一、简介
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#git" class="md-nav__link">
    <span class="md-ellipsis">
      二、GIT安装配置
    </span>
  </a>
  
    <nav class="md-nav" aria-label="二、GIT安装配置">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#11" class="md-nav__link">
    <span class="md-ellipsis">
      1.1.中文乱码
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#12" class="md-nav__link">
    <span class="md-ellipsis">
      1.2.配置身份信息
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#_2" class="md-nav__link">
    <span class="md-ellipsis">
      三、创建仓库
    </span>
  </a>
  
    <nav class="md-nav" aria-label="三、创建仓库">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#init" class="md-nav__link">
    <span class="md-ellipsis">
      【init】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#clone" class="md-nav__link">
    <span class="md-ellipsis">
      【clone】
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#git_1" class="md-nav__link">
    <span class="md-ellipsis">
      四、基础GIT命令
    </span>
  </a>
  
    <nav class="md-nav" aria-label="四、基础GIT命令">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#status" class="md-nav__link">
    <span class="md-ellipsis">
      【status】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#add" class="md-nav__link">
    <span class="md-ellipsis">
      【add】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#commit" class="md-nav__link">
    <span class="md-ellipsis">
      【commit】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#rm" class="md-nav__link">
    <span class="md-ellipsis">
      【rm】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#reset" class="md-nav__link">
    <span class="md-ellipsis">
      【reset】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#diff" class="md-nav__link">
    <span class="md-ellipsis">
      【diff】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#log" class="md-nav__link">
    <span class="md-ellipsis">
      【log】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#tag" class="md-nav__link">
    <span class="md-ellipsis">
      【tag】
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#_3" class="md-nav__link">
    <span class="md-ellipsis">
      五、分支管理
    </span>
  </a>
  
    <nav class="md-nav" aria-label="五、分支管理">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#branch" class="md-nav__link">
    <span class="md-ellipsis">
      【branch】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#checkout" class="md-nav__link">
    <span class="md-ellipsis">
      【checkout】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#merge" class="md-nav__link">
    <span class="md-ellipsis">
      【merge】
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#_4" class="md-nav__link">
    <span class="md-ellipsis">
      六、远程仓库
    </span>
  </a>
  
    <nav class="md-nav" aria-label="六、远程仓库">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#remote" class="md-nav__link">
    <span class="md-ellipsis">
      【remote】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#fetch" class="md-nav__link">
    <span class="md-ellipsis">
      【fetch】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#pull" class="md-nav__link">
    <span class="md-ellipsis">
      【pull】
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#push" class="md-nav__link">
    <span class="md-ellipsis">
      【push】
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#_5" class="md-nav__link">
    <span class="md-ellipsis">
      七、配置忽略文件
    </span>
  </a>
  
</li>
      
    </ul>
  
</nav>
                  </div>
                </div>
              </div>
            
          
          
            <div class="md-content" data-md-component="content">
              <article class="md-content__inner md-typeset">
                
                  


<h1 id="git-">GIT版本管理看这一篇就够了 - 简书<a class="headerlink" href="#git-" title="Permanent link">&para;</a></h1>
<p>本文地址：<a href="https://www.jianshu.com/p/0e9d07ec76f9">https://www.jianshu.com/p/0e9d07ec76f9</a></p>
<h2 id="_1">一、简介<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h2>
<p><code>GIT</code>基本上是目前最为先进的分布式版本控制系统，通过<code>GIT</code>能够非常方便的管理文件多个版本，能够实现版本的回滚，比对等功能，并且支持分布式也就是多人协同工作。</p>
<p><code>GIT</code>也是目前使用作为广泛的版本控制软件，大名鼎鼎的<code>Github</code>网站能直接与<code>GIT</code>对接，使用<code>GIT</code>上传代码到<code>Github</code>之中。</p>
<h2 id="git">二、GIT安装配置<a class="headerlink" href="#git" title="Permanent link">&para;</a></h2>
<p>通常来说，<code>Linux</code>系统使用各自版本对应的包管理工具可以非常方便的安装<code>GIT</code>。例如<code>sudo apt-get install git</code>，但安装之后会有一些设置需要配置。</p>
<h3 id="11">1.1.中文乱码<a class="headerlink" href="#11" title="Permanent link">&para;</a></h3>
<p>安装<code>GIT</code>之后比较常见的一个问题，就是中文乱码，可以通过在命令行中设置解决：</p>
<div class="highlight"><pre><span></span><code>git config --global core.quotepath false
</code></pre></div>
<h3 id="12">1.2.配置身份信息<a class="headerlink" href="#12" title="Permanent link">&para;</a></h3>
<p>由于<code>GIT</code>支持多用户协作，所以在使用<code>GIT</code>之前，还需要配置身份信息。首先需要在<code>GIT</code>中配置你的用户名和邮箱地址：</p>
<div class="highlight"><pre><span></span><code>git config --global user.name  &quot;name&quot;  // 名字
git config --global user.email &quot;123@126.com&quot;  // 邮箱
</code></pre></div>
<hr />
<h2 id="_2">三、创建仓库<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h2>
<p>在使用<code>GIT</code>之前，得掌握一个<code>仓库</code>的概念，也就是<code>repository</code>。这个<code>repository</code>也就是一个目录，是<code>GIT</code>管理的单位，在一个<code>repository</code>中，所有文件的新建、修改、删除都会被<code>GIT</code>跟踪到，并加以管理，以便在以后进行还原等操作。</p>
<p>所以，使用<code>GIT</code>，首先要创建一个<code>repository</code>。</p>
<p>创建一个仓库，主要可以有两种方式。</p>
<h4 id="init">【init】<a class="headerlink" href="#init" title="Permanent link">&para;</a></h4>
<p><code>init</code>的创建方式为从零开始创建一个仓库，首先需要有一个目录，使用<code>cd</code>进入到我们想要创建仓库的目录中，然后使用以下命令：</p>
<div class="highlight"><pre><span></span><code>git init
</code></pre></div>
<p>即可将当前目录转化为一个<code>repository</code>。目录中会出现一个<code>.git</code>目录，里面保存着所有的版本信息。</p>
<h4 id="clone">【clone】<a class="headerlink" href="#clone" title="Permanent link">&para;</a></h4>
<p>除了自己从零开始创建仓库外，还可以使用别人的远程仓库来创建，例如<code>Github</code>上有许多项目代码，都可以使用这种方式拷贝下来。</p>
<div class="highlight"><pre><span></span><code>git clone git://git.kernel.org/pub/scm/.../linux.git
</code></pre></div>
<p>这样的话会在当前目录生成一个一模一样的仓库。</p>
<h2 id="git_1">四、基础GIT命令<a class="headerlink" href="#git_1" title="Permanent link">&para;</a></h2>
<p>创建好仓库之后，就可以在仓库之中开始使用命令来控制此仓库文件的版本了。</p>
<p>在使用这些命令之前，还有几个<code>GIT</code>的基础概念需要掌握，分别是：<code>工作区(working directory)</code>，<code>暂存区(stage)</code>，<code>分支</code>，<code>版本库</code>。</p>
<ul>
<li>首先，<code>工作区</code>指的其实就是我们平常我们修改文件，查看文件的地方。</li>
<li><code>暂存区</code>则是类似于一个中转的区域，被叫做<code>stage</code>或者<code>index</code>。在工作区中修改了内容，那么首先需要先将修改提交到暂存区中，积累一定的修改数量，汇集成一个版本之后，再一起提交到具体的分支中。暂存区在本地的.git文件夹</li>
<li>在<code>GIT</code>管理的项目中，有<code>分支</code>这个说法，可以理解为具体的开发方向，<code>GIT</code>仓库在初始化的时候会默认创建一个<code>master</code>分支，你的文件版本就实际保存在这些分支之中。</li>
<li><code>暂存区</code>和<code>分支</code>合起来称为整个版本库。</li>
</ul>
<h4 id="status">【status】<a class="headerlink" href="#status" title="Permanent link">&para;</a></h4>
<p>在仓库中使用<code>git status</code>命令可以查看当前仓库的状态：</p>
<div class="highlight"><pre><span></span><code>[root@southnorth lianjia]# git status
# On branch master
# Changes not staged for commit:
#   (use &quot;git add &lt;file&gt;...&quot; to update what will be committed)
#   (use &quot;git checkout -- &lt;file&gt;...&quot; to discard changes in working directory)
#
#   modified:   lianjia/settings.py
#
# Untracked files:
#   (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)
#
#   setup.py
no changes added to commit (use &quot;git add&quot; and/or &quot;git commit -a&quot;)
</code></pre></div>
<p>其中主要列出了仓库当前所处的分支，被修改了的文件，以及没有被跟踪的文件。</p>
<p><strong>参数</strong>：</p>
<ol>
<li><code>-s</code> - 以短格式显示仓库状态。</li>
</ol>
<hr />
<h4 id="add">【add】<a class="headerlink" href="#add" title="Permanent link">&para;</a></h4>
<p>在<code>GIT</code>仓库之中，虽然我们说所有的文件都可以被跟踪，但是这只限于文本文件的修改，<code>GIT</code>无法跟踪二进制文件的修改。</p>
<p>同时，在跟踪之前也需要先将文件添加到仓库的索引中，也就是说，使用<code>add</code>命令添加到索引中的文件，才会被<code>GIT</code>跟踪。在每次你新建或者修改了文件之后，需要你使用<code>add</code>命令将这个文件先添加到暂存区之中。</p>
<div class="highlight"><pre><span></span><code>git add filename
</code></pre></div>
<p>运行了此命令之后，未跟踪文件将会从<code>Untracked files:</code>中转移到<code>Changes not staged for commit:</code>中。</p>
<p>有些时候，可能修改的文件比较多，一个个去用<code>add</code>命令去添加比较麻烦，所以也可以用<code>*</code>来匹配文件名，以下命令可以将所有未被跟踪的文件添加到暂存区中：</p>
<div class="highlight"><pre><span></span><code>git add *
或 git add .(当前目录)
</code></pre></div>
<hr />
<h4 id="commit">【commit】<a class="headerlink" href="#commit" title="Permanent link">&para;</a></h4>
<p>在将新文件或者修改过后的文件添加到暂存区之后，就可以使用<code>commit</code>命令将其正式提交到仓库了。但是要注意的是，<code>commit</code>提交到仓库的文件状态，是最后一次执行<code>add</code>时文件的状态，而不是执行<code>commit</code>时文件的状态。（建议add 和commit配对使用）</p>
<p>所以，在提交文件之前，最好都先使用<code>git status</code>检查一下，有没有需要添加的文件还没有用<code>add</code>添加到暂存区中。然后就可以运行命令了：</p>
<div class="highlight"><pre><span></span><code>git commit
</code></pre></div>
<p>直接运行此命令后，会跳出一个编辑界面，一般默认是使用<code>vim</code>。如下所示：</p>
<div class="highlight"><pre><span></span><code># Please enter the commit message for your changes. Lines starting
# with &#39;#&#39; will be ignored, and an empty message aborts the commit.
#
# On branch master
# Your branch is up to date with &#39;origin/master&#39;.
#
# Changes to be committed:
#       modified:   &quot;hello.md&quot;
</code></pre></div>
<p>这里其实是需要你输入一些关于此次<code>commit</code>的一些信息，对此次代码提交做一定的标识，方便以后如果需要还原版本的时候清楚代码的改动。对此信息保存退出后，则<code>commit</code>提交成功。</p>
<p><strong>参数</strong>：</p>
<ol>
<li>
<p><code>-a</code> - 虽然说可以使用<code>add</code>命令对<code>commit</code>提交的暂存区做很精细的改动，但是当提交的文件非常多的时候，则<code>add</code>起来会比较的麻烦。所以<code>commit</code>提供了<code>-a</code>参数，使用此参数，则会自动将已被追踪的修改过的文件添加到缓存区中，不用再手动<code>add</code>添加了。</p>
</li>
<li>
<p><code>-m</code> - <code>commit</code>提交的时候需要输入信息，有时候如果希望输入的信息比较少，则可以使用-m参数直接在命令行输入。如下所示：</p>
<div class="highlight"><pre><span></span><code>git commit -m &#39;message&#39;
</code></pre></div>
</li>
</ol>
<h4 id="rm">【rm】<a class="headerlink" href="#rm" title="Permanent link">&para;</a></h4>
<p>如果需要移除仓库中已经被追踪的文件，那么最好使用<code>GIT</code>提供的<code>rm</code>命令来删除，会更加安全：</p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>rm<span class="w"> </span>filename
</code></pre></div>
<p>此删除命令<u>会将磁盘上的文件一并删除</u>，在<code>commit</code>后，此文件将不会再被追踪。</p>
<p><strong>参数</strong>：</p>
<ol>
<li>
<p><code>-f</code> - 如果删除的文件已经被修改过，或者已经被添加到暂存区中，那么则需要用<code>-f</code>参数强制删除。这是一个保护措施，因为还未被提交的修改不会被保存下来，是无法恢复的。</p>
</li>
<li>
<p><code>--cached</code> - 如果希望某个仓库中的文件不再被<code>GIT</code>跟踪，但是依然被保存在磁盘里，这种时候可以使用<code>--cached</code>来删除。在错误的添加了文件到仓库中后，这个参数非常有用。</p>
</li>
</ol>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>rm<span class="w"> </span>--cached<span class="w"> </span>filename
</code></pre></div>
<hr />
<h4 id="reset">【reset】<a class="headerlink" href="#reset" title="Permanent link">&para;</a></h4>
<p>使用<code>GIT</code>最大的一个好处是，<code>GIT</code>会将你提交的每个<code>commit</code>保存下来，以供你以后在出现问题后，能够非常方便的回滚版本。回滚版本的其中一个命令就是<code>reset</code>。</p>
<p>在你将一些文件使用<code>add</code>命令添加到暂存区之后，使用<code>git status</code>命令查看状态时可以看到提示，如果想将添加到暂存区的文件取消暂存则可以使用以下命令：</p>
<p>git reset HEAD <file>...</p>
<p>在这里，<code>HEAD</code>代表的是最近一次的<code>commit</code>，此命令的意思则是将指定文件回滚到最近一次<code>commit</code>提交的状态。</p>
<p>如果没有指定文件的话，那么将会回滚整个仓库的状态，如下：</p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>reset<span class="w"> </span>HEAD
</code></pre></div>
<p><strong>版本表示</strong>：</p>
<p>回滚的时候可以指定回滚的版本，版本的表示方式有三种，默认情况下都是指向最近一次提交：</p>
<ol>
<li>
<ul>
<li><code>HEAD</code> - 最近一个提交</li>
<li><code>HEAD^</code> - 上一次提交（倒数第二次提交）</li>
<li><code>HEAD^ ^</code> - 倒数第三次提交</li>
<li><code>HEAD^^^</code> - 倒数第四次的提交</li>
</ul>
</li>
<li>
<ul>
<li><code>HEAD~0</code> - 最近一个提交</li>
<li><code>HEAD~1</code> - 上一次提交（倒数第二次提交）</li>
<li><code>HEAD~2</code> - 倒数第三次提交</li>
<li><code>HEAD~3</code> - 倒数第四次的提交</li>
</ul>
</li>
<li>每次提交的<code>SHA1</code>版本号。</li>
</ol>
<p><strong>参数</strong>：</p>
<ol>
<li><code>--mixed</code> - <code>GIT</code>的默认模式，使用此模式的时候，会清空暂存区，将回滚的内容全部恢复成未暂存的状态。也就是说不会修改任何本地工作区文件，只会回滚<code>index</code>和清空暂存区。</li>
<li><code>--soft</code> - 使用此模式，同样不会修改任何本地工作区文件，与<code>--mixed</code>的区别主要在于，其会将回滚的内容放入暂存区中。</li>
<li><code>--hard</code> - 此模式是一个比较危险的命令，使用此模式，将会把仓库彻底还原到<code>commit</code>的状态。如果你的暂存区和工作区中有修改了但未提交的内容，将会彻底丢失，所以谨慎使用此模式。</li>
</ol>
<hr />
<h4 id="diff">【diff】<a class="headerlink" href="#diff" title="Permanent link">&para;</a></h4>
<p><code>git diff</code>命令可以查看两次文件内容有什么不同。使用以下命令可以查看工作区和版本库中最新版本的区别。</p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>diff<span class="w"> </span>HEAD<span class="w"> </span>--<span class="w"> </span>&lt;filename&gt;
</code></pre></div>
<p>在这里<code>--</code>表示的是工作区，<code>HEAD</code>表示的是最近一次<code>commit</code>提交的版本，还可以用<code>--cached</code>代表暂存区。</p>
<p>在没有指定的情况下，是默认查看工作区和暂存区的区别：</p>
<div class="highlight"><pre><span></span><code>git diff &lt;filename&gt;
</code></pre></div>
<hr />
<h4 id="log">【log】<a class="headerlink" href="#log" title="Permanent link">&para;</a></h4>
<p>使用<code>git log</code>命令，将会用以下的格式输出提交的<code>commit</code>日志记录，如果记录较多的话，需要按<code>q</code>键退出查看。</p>
<div class="highlight"><pre><span></span><code>$ git log
commit 69b8e6b3ebff7b84d6190a374475a20482d4c3ba (HEAD -&gt; master, origin/master, origin/HEAD)
Author: wnanbei &lt;wnanbei@gmail.com&gt;
Date:   Thu Nov 15 17:16:53 2018 +0800


    add git branch part

commit 28056c5055ef9ed4156b74713c0205e8fde44713
Author: wnanbei &lt;wnanbei@gmail.com&gt;
Date:   Thu Nov 15 15:21:30 2018 +0800

    complete basic git command

commit 6f6aae904ad7551d49ab952e9e3afae70bc93c50
Author: wnanbei &lt;wnanbei@gmail.com&gt;
Date:   Thu Nov 8 17:19:46 2018 +0800

    add git
</code></pre></div>
<p><strong>参数</strong>：</p>
<ul>
<li><code>--oneline</code> - 每条<code>commit</code>日志只显示一行内容：</li>
</ul>
<div class="highlight"><pre><span></span><code>$ git log --oneline
69b8e6b (HEAD -&gt; master, origin/master, origin/HEAD) add git branch part
28056c5 complete basic git command
6f6aae9 add git
</code></pre></div>
<ul>
<li><code>--skip</code> - 指定跳过前面几条日志：</li>
</ul>
<div class="highlight"><pre><span></span><code>$ git log --skip=4 --oneline
b9922fc add git
edd4594 change the python file name
a9cded2 add git article
</code></pre></div>
<ul>
<li><code>-[length]</code> - 指定输出的日志数量</li>
</ul>
<div class="highlight"><pre><span></span><code>$ git log --oneline -2
69b8e6b (HEAD -&gt; master, origin/master, origin/HEAD) add git branch part
28056c5 complete basic git command
</code></pre></div>
<ul>
<li>
<p><code>--pretty=</code> - 使用其他格式显示提交信息，可选项有：oneline、short、medium、full、fuller、email、raw，默认为medium。</p>
</li>
<li>
<p><code>--graph</code> - 在左侧以图形的方式显示提交的<code>commit</code>变动，更清晰的展示分支的合并等信息。</p>
</li>
<li>
<p><code>--decorate</code> - 展示更多的信息，例如HEAD、分支名、tag。</p>
</li>
<li>
<p><code>--author</code> - 通过提交者的名字来搜索提交信息。</p>
</li>
<li>
<p><code>--grep</code> - 从提交的关键字搜索提交信息。</p>
</li>
<li>
<p><code>-p</code> - 通过路径搜索提交信息</p>
</li>
</ul>
<p><code>git log -p -- config/my.config</code></p>
<p>​    </p>
<hr />
<h4 id="tag">【tag】<a class="headerlink" href="#tag" title="Permanent link">&para;</a></h4>
<p>在<code>GIT</code>中还有一个非常方便的功能，就是打标签，可以给某个特定的<code>commit</code>进行标记。比较广泛的一个方式使用它来标记==版本号==。使用以下命令将会给当前分支最新的一个<code>commit</code>打上<code>tag</code>。</p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>tag<span class="w"> </span>&lt;tagname&gt;
</code></pre></div>
<p>如果你需要指定给某个<code>commit</code>打<code>tag</code>的话，则需要你在命令后面加上<code>commit</code>的id。</p>
<p>使用以下命令可以查看<code>tag</code>的信息：</p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>tag<span class="w">  </span><span class="c1"># 查看本地所有tag</span>
git<span class="w"> </span>show<span class="w"> </span>&lt;tagname&gt;<span class="w">  </span><span class="c1"># 查看指定tag的详细信息</span>
git<span class="w"> </span>ls-remote<span class="w"> </span>--tags<span class="w"> </span>&lt;remotename&gt;<span class="w"> </span>查看远程所有tag
</code></pre></div>
<p>需要注意的是，我们创建的<code>tag</code>都是只存在于本地的，所以如果要把<code>tag</code>同步到远程仓库的话，需要额外单独的使用命令同步<code>tag</code>。</p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>push<span class="w"> </span>&lt;remotename&gt;<span class="w"> </span>&lt;tagName&gt;<span class="w">  </span><span class="c1"># 推送单个tag到远程仓库</span>

git<span class="w"> </span>push<span class="w"> </span>&lt;remotename&gt;<span class="w"> </span>--tags<span class="w">  </span><span class="c1"># 推送所有未推送的tag到远程仓库</span>
</code></pre></div>
<p><strong>参数</strong>：</p>
<ul>
<li>-<code>a</code> - 指定<code>tag</code>的名字。</li>
<li><code>-m</code> - 给<code>tag</code>添加上备注的信息，与<code>commit</code>的信息类似。</li>
<li><code>-d</code> - 这个参数代表删除<code>tag</code>。需要注意的是如果要删除远程的<code>tag</code>，则需要本地删除后，再push到远程仓库。</li>
</ul>
<h2 id="_3">五、分支管理<a class="headerlink" href="#_3" title="Permanent link">&para;</a></h2>
<p>在<code>GIT</code>之中，有分支的概念。在这里举一个例子，你希望在你的工作项目上新增添一个功能，那么你就可以在当前项目的基础上新开一个分支，然后在这个专门的分支上开发的你新功能，而原来的工作项目不受任何影响。等到你的新功能开发完毕通过测试后，就可以将这个分支与之前的工作项目分支合并了。</p>
<p>这种开发方式，能够将工作从开发主线上分离开来，避免工作时影响到工作主线。</p>
<p>由于<code>GIT</code>的分支实现原理跟指针类似，所以创建切换合并分支都是非常迅速的。<code>GIT</code>也非常鼓励新建一个分支去完成任务，任务完成后和主分支合并，然后删除掉这个新分支，这样使用下来与直接在主分支工作是差不多的，但是安全性要高不少。</p>
<h4 id="branch">【branch】<a class="headerlink" href="#branch" title="Permanent link">&para;</a></h4>
<p>首先，直接使用<code>git branch</code>命令是查看当前仓库的分支：</p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>branch
</code></pre></div>
<p>如果在<code>git branch</code>命令后面跟上一个名字，则可以在当前仓库新建一个分支：</p>
<p><code>git branch working</code></p>
<p>也可以使用当前分支的某历史版本创建分支，这样的话需要指定具体的<code>commit</code>的ID：</p>
<p><code>git branch working 169d2dc</code></p>
<p>需要注意的是，仓库一般默认会有一个<code>master</code>分支，这个分支其实并没有什么特殊，跟其他新建的分支没有什么区别，只是在<code>git init</code>时默认会创建这样一个分支，大部分人也懒得去修改。</p>
<p><strong>参数</strong>：</p>
<ul>
<li><code>-d</code> - 如果在创建之后需要删除一个分支，可以加上此参数。</li>
</ul>
<p><code>git branch -d working</code></p>
<hr />
<h4 id="checkout">【checkout】<a class="headerlink" href="#checkout" title="Permanent link">&para;</a></h4>
<p>在创建了分支之后，我们所处的依然是之前的分支，要切换到新的分支的话，依然是需要我们手动切换的。</p>
<p><code>git checkout working</code></p>
<p><strong>参数</strong>：</p>
<ul>
<li><code>-b</code> - 加上这个参数之后，则代表直接创建一个分支，并且切换到这个分支，也就是说可以省略掉<code>git branch</code>这个步骤。</li>
</ul>
<h4 id="merge">【merge】<a class="headerlink" href="#merge" title="Permanent link">&para;</a></h4>
<p>在创建了分支之后，大部分情况下最终都是要合并的，也就是将分支修改的内容和另一个分支的修改内容合并到一起。</p>
<p>使用<code>git merge</code>命令将可以把<u>某一分支与当前分支</u>合并到一起：</p>
<p><code>git merge working</code></p>
<p>如果两个分支之间没有冲突的话，那么分支的合并将会非常简单，<code>GIT</code>会自行决定如何合并两个分支。但是如果两个分支之间有文件冲突的话，也就是说两个分支内都对同一个文件进行了修改这种类似的操作，<code>GIT</code>将无法决定保留哪一个分支的内容。</p>
<p>因为在逻辑层面上，也需要由你自己来决定，在冲突的情况下，保留哪个分支的内容。在这种情况下，合并的时候会显示类似以下的内容：</p>
<div class="highlight"><pre><span></span><code>CONFLICT<span class="w"> </span><span class="o">(</span>content<span class="o">)</span>:<span class="w"> </span>Merge<span class="w"> </span>conflict<span class="w"> </span><span class="k">in</span><span class="w"> </span>a.txt
Automatic<span class="w"> </span>merge<span class="w"> </span>failed<span class="p">;</span><span class="w"> </span>fix<span class="w"> </span>conflicts<span class="w"> </span>and<span class="w"> </span><span class="k">then</span><span class="w"> </span>commit<span class="w"> </span>the<span class="w"> </span>result.
</code></pre></div>
<p>在冲突的文件内，<code>GIT</code>会将两个分支的内容都放在了一起，由你自行修改：</p>
<div class="highlight"><pre><span></span><code>&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD
i am master
=======
hello, i am working
&gt;&gt;&gt;&gt;&gt;&gt;&gt; working
</code></pre></div>
<p>可以看到<code>====</code>分割上方的是当前分支的内容，下方是合并的<code>working</code>分支的内容。此时由你自行修改，处理完冲突之后，<code>add</code>添加好就可以提交了。</p>
<hr />
<h2 id="_4">六、远程仓库<a class="headerlink" href="#_4" title="Permanent link">&para;</a></h2>
<p>在前面讲的用法基本上都是本地的<code>GIT</code>用法，但是使用<code>GIT</code>很大的一个优势是可以多人协作，同时完成项目，那么这基本必然要涉及到远程仓库的使用。远程仓库可以自己在服务器上搭建，也可以使用一些其他人提供的仓库托管服务，例如<code>Github</code>这个全球最大的同性交友网站。</p>
<p>使用<code>init</code>命令生成的仓库中，是没有配置远程仓库的，需要自行配置。而如果是使用<code>clone</code>获取的仓库，则会将来源的远程仓库默认配置为一个名为<code>origin</code>的远程仓库，这个远程仓库没有什么特殊，只是默认起名而已。在一些比较复杂的多人合作项目中，会配置有多个远程仓库。</p>
<h4 id="remote">【remote】<a class="headerlink" href="#remote" title="Permanent link">&para;</a></h4>
<p>使用<code>git remote</code>命令即可查看当前仓库有配置哪些远程仓库：</p>
<p><code>$ git remote</code>
origin</p>
<p>如果你需要添加新的远程仓库，那么可以使用以下命令：</p>
<p><code>git remote add &lt;shortname&gt; &lt;url&gt;</code></p>
<p><code>&lt;shortname&gt;</code>是你给这个远程分支起的名字，这个名字只会在本地起作用。</p>
<p>以下还有一些显示与删除等命令：</p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>remote<span class="w"> </span>show<span class="w"> </span><span class="o">[</span>remote-name<span class="o">]</span><span class="w">  </span><span class="c1"># 显示远程仓库详细的信息</span>
git<span class="w"> </span>remote<span class="w"> </span>rename<span class="w"> </span>old_name<span class="w"> </span>new_name<span class="w">  </span><span class="c1"># 重命名远程仓库</span>
git<span class="w"> </span>remote<span class="w"> </span>rm<span class="w"> </span>remote_name<span class="w">  </span><span class="c1"># 删除远程仓库</span>
</code></pre></div>
<p><strong>参数</strong>：</p>
<ul>
<li><code>-v</code> - 会显示远程仓库的url。</li>
</ul>
<h4 id="fetch">【fetch】<a class="headerlink" href="#fetch" title="Permanent link">&para;</a></h4>
<p>在配置了远程仓库之后，就可以从远程仓库拉取内容了。这个命令会访问远程仓库，从中拉取所有你还没有的数据。 执行完成后，你将会拥有那个远程仓库中所有分支的引用，可以随时合并或查看。</p>
<p><code>git fetch [remote-name]</code></p>
<p>如果需要只拉取某个分支的内容，需要在后面加上分支的名称。</p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>fetch<span class="w"> </span>origin<span class="w"> </span>master<span class="w">  </span><span class="c1"># 拉取远程仓库origin中的master分支</span>
git<span class="w"> </span>fetch<span class="w"> </span>origin<span class="w"> </span>master:temp<span class="w">  </span><span class="c1"># 拉取远程仓库origin中的master分支，并命名为temp分支</span>
</code></pre></div>
<p>需要注意的是，<code>fetch</code>这个命令只是将版本库中的内容拉取下来，并不会自动合并和修改你工作区中的内容，需要你自行手动合并。</p>
<p>之后需要合并拉取的内容到工作区的话，需要使用<code>git merge</code>命令。</p>
<p><code>git merge FETCH_HEAD</code></p>
<p>这里的<code>FETCH_HEAD</code>是一个版本链接，记录在本地的一个文件中，指向着目前已经从远程仓库取下来的分支的末端版本。</p>
<p>一般来说一个比较常见且安全的使用方式如下：</p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>fetch<span class="w"> </span>origin<span class="w"> </span>master:tmp<span class="w">  </span><span class="c1"># 在本地新建一个temp分支，并将远程origin仓库的master分支代码下载到本地temp分支</span>
git<span class="w"> </span>diff<span class="w"> </span>tmp<span class="w">                 </span><span class="c1"># 来比较本地代码与刚刚从远程下载下来的代码的区别</span>
git<span class="w"> </span>merge<span class="w"> </span>tmp<span class="w">                </span><span class="c1"># 合并temp分支到本地的master分支</span>
git<span class="w"> </span>branch<span class="w"> </span>-d<span class="w"> </span>temp<span class="w">           </span><span class="c1"># 如果不想保留temp分支 可以用这步删除</span>
</code></pre></div>
<hr />
<h4 id="pull">【pull】<a class="headerlink" href="#pull" title="Permanent link">&para;</a></h4>
<p>如果觉得使用<code>fetch</code>命令比较麻烦，且确定远程仓库的内容可以安全合并的话，那么可以使用<code>pull</code>命令。<code>pull</code>命令其实是一个混合命令，相当于把<code>git fetch</code>和<code>git merge</code>这两个命令合并到了一起，一个命令直接解决问题。</p>
<p><code>git pull origin</code></p>
<hr />
<h4 id="push">【push】<a class="headerlink" href="#push" title="Permanent link">&para;</a></h4>
<p>在多人协作完成项目时，本地工作完成后，需要推送到远程仓库中，这个时候需要使用<code>git push</code>命令来进行推送。这个命令的用法如下所示：</p>
<p><code>git push &lt;远程主机名&gt; &lt;本地分支名&gt;:&lt;远程分支名&gt;</code></p>
<p>如果当前分支只有一个远程分支，那么主机名与分支名都可以省略：</p>
<p><code>git push</code></p>
<p>如果当前分支与远程分支存在追踪关系，则可以省略分支名，只留主机名，例如：</p>
<p><code>git push origin</code></p>
<p>如果只省略远程分支名，则表示将分支退送到与之存在追踪关系的分支，如果远程分支不存在，则创建新的远程分支：</p>
<p><code>git push origin master</code></p>
<p>如果只省略本地分支名，则代表删除指定远程分支：</p>
<p><code>git push origin ：master</code></p>
<hr />
<h2 id="_5">七、配置忽略文件<a class="headerlink" href="#_5" title="Permanent link">&para;</a></h2>
<p>在使用<code>GIT</code>管理项目时，我们项目里常常会有一些文件是不需要纳入版本管理的，例如<code>Mac</code>系统的<code>.DS_Store</code>之类的默认文件，又比如Python的运行生成的<code>__pycache__</code>目录。</p>
<p>如果这种文件较多时，我们添加文件将变得比较的麻烦，所以<code>GIT</code>给我们提供了一个方式，可以忽略掉指定的文件。</p>
<p>首先是配置全局忽略，<code>GIT</code>管理的仓库都能起效。配置的方式有几种，我们这里主要使用<code>.gitignore</code>文件来进行配置。</p>
<p>首先我们需要创建一个<code>.gitignore</code>文件，这个文件放在哪里都可以，但推荐的位置是直接放到家目录中：</p>
<p><code>touch .gitignore</code></p>
<p>然后，我们需要将此文件配置到<code>GIT</code>中（如果有修改文件路径的话，这里需要相应的修改）：</p>
<p><code>git config --global core.excludesfile ~/.gitignore</code></p>
<p>最后，我们再来编辑<code>.gitignore</code>文件，将需要忽略的文件写到这个文件中即可，文件内格式如下所示：</p>
<div class="highlight"><pre><span></span><code>.DS_Store
__pycache__
*.pyc
.vscode
</code></pre></div>
<p>如果需要按照具体的项目来配置特定的忽略文件的话，那么可以配置一个<code>.gitignore</code>文件直接放到仓库的根目录即可。</p>
<h1 id="commit_1">常用：本地和远程commit冲突时解决方案<a class="headerlink" href="#commit_1" title="Permanent link">&para;</a></h1>
<ol>
<li><code>git pull --rebase origin master</code>将远程的commit拉到本地作为老的commit，本地作为新的。</li>
</ol>







  
    
  
  
    
  


  <aside class="md-source-file">
    
      
  <span class="md-source-file__fact">
    <span class="md-icon" title="最后更新">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
    </span>
    <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">February 29, 2024</span>
  </span>

    
    
      
  <span class="md-source-file__fact">
    <span class="md-icon" title="创建日期">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2Z"/></svg>
    </span>
    <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">February 29, 2024</span>
  </span>

    
    
    
  </aside>





                
              </article>
            </div>
          
          
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
        </div>
        
          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
  
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
  回到页面顶部
</button>
        
      </main>
      
        <footer class="md-footer">
  
    
      
      <nav class="md-footer__inner md-grid" aria-label="页脚" >
        
          
          <a href="../git%E5%BE%BD%E6%A0%87/" class="md-footer__link md-footer__link--prev" aria-label="上一页: GitHub项目徽标 - 知乎">
            <div class="md-footer__button md-icon">
              
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
            </div>
            <div class="md-footer__title">
              <span class="md-footer__direction">
                上一页
              </span>
              <div class="md-ellipsis">
                GitHub项目徽标 - 知乎
              </div>
            </div>
          </a>
        
        
          
          <a href="../%E4%BC%98%E9%9B%85%E7%9A%84%E6%B7%BB%E5%8A%A0.gitignore/" class="md-footer__link md-footer__link--next" aria-label="下一页: VS Gitignore 示例：">
            <div class="md-footer__title">
              <span class="md-footer__direction">
                下一页
              </span>
              <div class="md-ellipsis">
                VS Gitignore 示例：
              </div>
            </div>
            <div class="md-footer__button md-icon">
              
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
            </div>
          </a>
        
      </nav>
    
  
  <div class="md-footer-meta md-typeset">
    <div class="md-footer-meta__inner md-grid">
      <div class="md-copyright">
  
    <div class="md-copyright__highlight">
      Copyright © dancehole邓仕昊 2023 - 2024 深圳技术大学
    </div>
  
  
    Made with
    <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
      Material for MkDocs
    </a>
  
</div>
      
        <div class="md-social">
  
    
    
    
    
      
      
    
    <a href="https://github.com/dancehole" target="_blank" rel="noopener" title="github.com" class="md-social__link">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
    </a>
  
    
    
    
    
    <a href="mailto:<1391755954@qq.com>" target="_blank" rel="noopener" title="" class="md-social__link">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480v-83.6c0-4 1.5-7.8 4.2-10.7l167.6-182.9c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8l-88.3-44.2C7.1 311.3.3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z"/></svg>
    </a>
  
</div>
      
    </div>
  </div>
</footer>
      
    </div>
    <div class="md-dialog" data-md-component="dialog">
      <div class="md-dialog__inner md-typeset"></div>
    </div>
    
    
    <script id="__config" type="application/json">{"base": "../..", "features": ["navigation.instant", "navigation.instant.prefetch", "toc.follow", "navigation.top", "search.suggest", "search.highlight", "navigation.footer"], "search": "../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "\u5df2\u590d\u5236", "clipboard.copy": "\u590d\u5236", "search.result.more.one": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.more.other": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 # \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.none": "\u6ca1\u6709\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.one": "\u627e\u5230 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.other": "# \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.placeholder": "\u952e\u5165\u4ee5\u5f00\u59cb\u641c\u7d22", "search.result.term.missing": "\u7f3a\u5c11", "select.version": "\u9009\u62e9\u5f53\u524d\u7248\u672c"}}</script>
    
    
      <script src="../../assets/javascripts/bundle.c8d2eff1.min.js"></script>
      
        <script src="../../javascripts/extra.js"></script>
      
        <script src="../../javascripts/mathjax.js"></script>
      
        <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
      
        <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
      
    
  </body>
</html>